#pragma once


class OLYMPUS_API PerGameSettings {

private:

	/* Singleton reference to static class */
	static PerGameSettings* inst;

	static PerGameSettings* Instance() { return inst; }

public:
	/* Constructor with Singlton assignment and predefined variables */
	PerGameSettings();
	~PerGameSettings();

private:
	/* Per Game Private Variables */
	WCHAR mGameName[MAX_NAME_STRING];
	WCHAR mShortName[MAX_NAME_STRING];
	HICON mMainIcon;
	WCHAR mBootTime[MAX_NAME_STRING];
	WCHAR mSplashURL[MAX_NAME_STRING];


public:

	/* Access Gettersand Setters */
	static WCHAR* GameName() { return inst->mGameName; }
	static VOID SetGameName(UINT id) { LoadString(HInstance(), id, inst->mGameName, MAX_NAME_STRING); }

	static WCHAR* ShortName() { return inst->mShortName; }
	static VOID SetShortName(UINT id) { LoadString(HInstance(), id, inst->mShortName, MAX_NAME_STRING); }

	static HICON MainIcon() { return inst->mMainIcon; }
	static VOID SetMainIcon(UINT id) { LoadIcon(HInstance(), MAKEINTRESOURCE(id)); }

	static WCHAR* BootTime() { return inst->mBootTime;  }

	static WCHAR* SplashURL() { return inst->mSplashURL; }
	static VOID SetSplashURL(UINT id) { LoadString(HInstance(), id, inst->mSplashURL, MAX_NAME_STRING); }

};
